import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'dart:math';
import '../../../common/utils/index.dart';

class HomeIndexController extends GetxController {
  HomeIndexController();

  PageController? _pageController;
  
  // PageController的getter
  PageController get pageController {
    _pageController ??= PageController();
    return _pageController!;
  }
  
  // 当前页面索引
  RxInt currentPageIndex = 0.obs;
  
  // 页面颜色列表
  RxList<Color> pageColors = <Color>[].obs;
  
  // 页面总数
  final int totalPages = 10;

  _initData() {
    // 生成随机颜色页面
    _generateRandomColors();
    
    update(["home_index"]);
  }

  // 生成随机颜色
  void _generateRandomColors() {
    pageColors.clear();
    final Random random = Random();
    
    // 预定义的漂亮颜色组合
    List<Color> beautifulColors = [
      const Color(0xFF6B73FF), // 深蓝紫
      const Color(0xFF9068BE), // 紫色
      const Color(0xFF724CF9), // 蓝紫
      const Color(0xFF2196F3), // 蓝色
      const Color(0xFF00BCD4), // 青色
      const Color(0xFF009688), // 蓝绿
      const Color(0xFF4CAF50), // 绿色
      const Color(0xFF8BC34A), // 浅绿
      const Color(0xFFCDDC39), // 黄绿
      const Color(0xFFFFEB3B), // 黄色
      const Color(0xFFFFC107), // 琥珀
      const Color(0xFFFF9800), // 橙色
      const Color(0xFFFF5722), // 深橙
      const Color(0xFFF44336), // 红色
      const Color(0xFFE91E63), // 粉红
      const Color(0xFF9C27B0), // 紫色
    ];
    
    // 混合预定义颜色和随机颜色
    for (int i = 0; i < totalPages; i++) {
      Color selectedColor;
      
      if (i < beautifulColors.length && random.nextBool()) {
        // 50% 概率使用预定义颜色
        selectedColor = beautifulColors[i];
      } else {
        // 生成更加鲜艳的随机颜色
        final hue = random.nextDouble() * 360;
        final saturation = 0.6 + random.nextDouble() * 0.4; // 60%-100%
        final value = 0.7 + random.nextDouble() * 0.3; // 70%-100%
        selectedColor = HSVColor.fromAHSV(1.0, hue, saturation, value).toColor();
      }
      
      pageColors.add(selectedColor);
    }
    
    // 打乱颜色顺序
    pageColors.shuffle();
  }

  // 页面切换回调
  void onPageChanged(int index) {
    currentPageIndex.value = index;
  }

  // 刷新颜色
  void refreshColors() {
    _generateRandomColors();
    update(["home_index"]);
  }

  void onTap() {
    // 点击刷新颜色
    refreshColors();
  }

  // 更多按钮点击事件
  void onMoreTap() {
    // TODO: 实现更多功能
    LoadingUtil.toast('更多功能待开发');
  }

  // 搜索按钮点击事件
  void onSearchTap() {
    // TODO: 实现搜索功能
    LoadingUtil.toast('搜索功能待开发');
  }

  @override
  void onInit() {
    super.onInit();
    _initData();
  }

  @override
  void onReady() {
    super.onReady();
  }

  @override
  void onClose() {
    _pageController?.dispose();
    super.onClose();
  }
}
